package com.cip.client.modelo.entidad;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.jdo.annotations.Extension;
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

import com.cip.client.modelo.BaseRecord;

/**
 * @author Angel
 * 
 */
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class EntidadRecord extends BaseRecord implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -1582848194306390660L;

	@PrimaryKey
	@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
	@Extension(vendorName = "datanucleus", key = "gae.encoded-pk", value = "true")
	private String id;

	@Persistent
	private String cif;

	@Persistent
	private String nombre;

	@Persistent
	private String razonSocial;

	@Persistent
	private Date fechaInsercion;

	@Persistent
	private String codigoCNAE;

	@Persistent
	private String nss;

	@Persistent
	private EntidadRecord entidadPadre;

	@Persistent
	private String estadoAdministrativo;

	@Persistent
	private String origenContactoEmpresa;
	
	@Persistent
	private List<ObservacionesEntidadRecord> observaciones = new ArrayList<ObservacionesEntidadRecord>();

	@Persistent
	private DatosComunicacionEntidadRecord datosComunicacion = new DatosComunicacionEntidadRecord();

	@Persistent
	private DatosLocalizacionEntidadRecord datosLocalizacion = new DatosLocalizacionEntidadRecord();

	@Persistent
	private List<LlamadaRecord> llamadas = new ArrayList<LlamadaRecord>();

	@Persistent
	private List<VisitaRecord> visitas = new ArrayList<VisitaRecord>();
	
	
	public EntidadRecord() {

	}

	@Override
	public void copia(BaseRecord record) {
		setCif(((EntidadRecord) record).getCif());
		setNombre(((EntidadRecord) record).getNombre());
		setRazonSocial(((EntidadRecord) record).getRazonSocial());
		setFechaInsercion(((EntidadRecord) record).getFechaInsercion());
		setCodigoCNAE(((EntidadRecord) record).getCodigoCNAE());
		setNss(((EntidadRecord) record).getNss());
		setEntidadPadre(((EntidadRecord) record).getEntidadPadre());
		setEstadoAdministrativo(((EntidadRecord) record).getEstadoAdministrativo());
		setOrigenContactoEmpresa(((EntidadRecord) record).getOrigenContactoEmpresa());
		setObservaciones(((EntidadRecord) record).getObservaciones());
		setDatosComunicacion(((EntidadRecord) record).getDatosComunicacion());
		setDatosLocalizacion(((EntidadRecord) record).getDatosLocalizacion());
		setLlamadas(((EntidadRecord) record).getLlamadas());
		setVisitas(((EntidadRecord) record).getVisitas());
		
		/*
		 * setDatosLocalizacion(((EntidadRecord)
		 * record).getDatosLocalizacion());
		 * 
		 * setDatosComunicacion(((EntidadRecord)
		 * record).getDatosComunicacion());
		 */
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getCif() {
		return cif;
	}

	public void setCif(String cif) {
		this.cif = cif;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getRazonSocial() {
		return razonSocial;
	}

	public void setRazonSocial(String razonSocial) {
		this.razonSocial = razonSocial;
	}

	public Date getFechaInsercion() {
		return fechaInsercion;
	}

	public void setFechaInsercion(Date fechaInsercion) {
		this.fechaInsercion = fechaInsercion;
	}

	public String getCodigoCNAE() {
		return codigoCNAE;
	}

	public void setCodigoCNAE(String codigoCNAE) {
		this.codigoCNAE = codigoCNAE;
	}

	public String getNss() {
		return nss;
	}

	public void setNss(String nss) {
		this.nss = nss;
	}

	public EntidadRecord getEntidadPadre() {
		return entidadPadre;
	}

	public void setEntidadPadre(EntidadRecord entidadPadre) {
		this.entidadPadre = entidadPadre;
	}

	public String getEstadoAdministrativo() {
		return estadoAdministrativo;
	}

	public void setEstadoAdministrativo(String estadoAdministrativo) {
		this.estadoAdministrativo = estadoAdministrativo;
	}

	public void setObservaciones(List<ObservacionesEntidadRecord> observaciones) {
		this.observaciones = observaciones;
	}

	public List<ObservacionesEntidadRecord> getObservaciones() {
		return observaciones;
	}

	public DatosComunicacionEntidadRecord getDatosComunicacion() {
		return datosComunicacion;
	}

	public void setDatosComunicacion(DatosComunicacionEntidadRecord datosComunicacion) {
		this.datosComunicacion = datosComunicacion;
	}

	public DatosLocalizacionEntidadRecord getDatosLocalizacion() {
		return datosLocalizacion;
	}

	public void setDatosLocalizacion(DatosLocalizacionEntidadRecord datosLocalizacion) {
		this.datosLocalizacion = datosLocalizacion;
	}

	
	public List<VisitaRecord> getVisitas() {
		return visitas;
	}

	public void setVisitas(List<VisitaRecord> visitas) {
		this.visitas = visitas;
	}

	public void setLlamadas(List<LlamadaRecord> llamadas) {
		this.llamadas = llamadas;
	}

	public List<LlamadaRecord> getLlamadas() {
		return llamadas;
	}

	public void setOrigenContactoEmpresa(String origenContactoEmpresa) {
		this.origenContactoEmpresa = origenContactoEmpresa;
	}

	public String getOrigenContactoEmpresa() {
		return origenContactoEmpresa;
	}

	
}